Top 10k strings from Computer Studies - Visicode (1984)(Longman Software).z80 in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [Z80] (TOSEC-v2007-01-01) /

Back to the directory listing

   3  in X to ACCUMULATOR";
   3  VISICODE 
   2 ~? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
   2 ? ? ? ? ? ? ? ? ? ? ? ? ? 
   2 >@>@>@>@>@>@>@>@>@>@>@>@>@>@>@>@
   2 >@>@>@>@>@>@>@>@>@>@>@>@>@
   2  Do you want some examples ?
   1 w$=z$+w$+z$:
   1 X ZERO:GOING":
   1 X NOT ZERO:NO GO ":
   1 REGISTER  Y
   1 REGISTER  X
   1 PUT X, PUT Y, ADD X  ADD Y  TAKE X TAKE Y CHECK, ZEROGO,NEGGO, GO,    GOBACK,COUNT  DOWN   XZERO, END    
   1 PRODUCTS/CONTRACT BOOKS
   1 M$=M$+" ":
   1 INSTRUCTION OR 
   1 ILLEGAL INSTRUCION - CHECK CODES
   1 I$(Q)=C$(CN,1
   1 Do you want them again? 
   1 ACCUMULATOR
   1 A$=" VISICODE ":
   1 > IF X=0 THEN....    Note: ""XZERO"" is a ""GO"" instruction."
   1 ;"used to store numbers."
   1 ;"the calculations are done."
   1 ;"as a simple counter."
   1 ;"The sum is in the ACCUMULTOR.":
   1 ;"The result is in the ACCUMULTOR.":
   1 ;"The X and Y REGISTERS can be";
   1 ;"The X REGISTER can also be used";
   1 ;"The ACCUMULATOR is where all";
   1 ;"Put 6 in REGISTER X";
   1 ;"Put 3 in REGISTER X.";
   1 ;"Put 255 in REGISTER X.";
   1 ;"Put 128 in REGISTER X";
   1 ,"PUT Y,","99","ADD Y","","PUT Y,","22","TAKE Y","","END",""
   1 ,"PUT Y,","32","ADD Y","","PUT Y,","5","TAKE Y","","COUNT","","CHECK,","4"
   1 ,"PUT Y,","2","ADD Y","","CHECK,","12","ZEROGO,","3","GOBACK,","4","END",""
   1 ,"PUT X,","5","PUT Y,","2","ADD Y","","DOWN","","XZERO,","3","GOBACK,","3","END",""
   1 ,"PUT X,","3","ADD X","","PUT Y,","12","ADD Y","","END",""
   1 ''" This program shows how machine"''" code can be used for simple"''" arithmetic and loops."
   1 ''" The worst that can happen is"'" that it won't work - in which"'" case - check your codes and"'" start again."
   1 ''" Plan out your program using"'" the HELP! page. Take particular"
   1 '" Use the next section to key in"'" your program,then watch it run."
   1 '" The HELP! page can be recalled"'" when keying in,without losing"'" any work already in."
   1 '" For ease of use,VISICODE does"''" NOT use standard Z80 Assembler,"''" and the number of instructions"''" has been kept to the minimum."
   1 "ZEROGO,","5","NEGGO,","3","GOBACK,","7","END",""
   1 "You can add, or subtract a whole series of numbers. Keep PUTting numbers into a REGISTER and follow with an ADD or TAKE instruction."
   1 "XZERO,n ","IF X=0 JUMP n PLACES","END
   1 "When using any ""GO""  count from the ""GO"" to the target line.   Include in the total ALL numbers and instructions to be jumped."
   1 "Visicode"
   1 "This program shows why ""proper"" Assembler needs so many different instructions.   The 15 VISICODEs do not have the flexibility for anything more than simple division."
   1 "TAKE X  ","TAKE X number FROM ACC.","TAKE Y  ","TAKE Y number FROM ACC."
   1 "PUT X,n ","PUT n IN X REGISTER","PUT Y,n ","PUT n IN Y REGISTER"
   1 "PUT X,","PUT Y,","ADD X","ADD Y","TAKE X","TAKE Y","CHECK,","ZEROGO,","NEGGO,","GO,","GOBACK,","COUNT","DOWN","XZERO,","END"
   1 "NEGGO,N ","IF DIFF<0,JUMP n PLACES"
   1 "In BASIC the X COUNTER would look like this:   LET X=10 >>>> LET X=X-1 
   1 "GO,n    ","JUMP n PLACES ON","GOBACK,n","JUMP n PLACES BACK"
   1 "COUNT   ","ADD 1 TO number IN X","DOWN    ","TAKE 1 FROM number IN X"
   1 "CHECK,n ","DIFFERENCE (ACC.-n)...","ZEROGO,n","IF DIFF=0,JUMP n PLACES"
   1 "ADD X   ","ADD X number TO ACC.","ADD Y   ","ADD Y number TO ACC."
   1 "- SUBTRACTION -","","Use ADD to get","first number in","ACCUMULATOR.","TAKE subtracts","second number.",""
   1 "*TIMES*TABLE*2*"," Shows loop &"," X as COUNTER.",""," GOBACK,3 loops"," to ADD Y line."," XZERO jumps"," on 5th DOWN."
   1 "*TIMES*TABLE*1*"," Shows loop &"," CHECK on ACC.",""," GOBACK,4 loops"," to ADD Y line."," ZEROGO jumps "," if ACC.=12."
   1 "","++ ADDITION ++",""," numbers PUT"," in X and Y"," ADDED in ACC.","",""
   1 """PUT X,3"" stores 3 in REGISTER X.   "" ADD X"" adds it to the 0 in the ACCUMULATOR.  Either, or both, REGISTERS can be used in this way."
   1 " care when calculating numbers"'" for ""GO""'s."
   1 "  / DIVISION /"," CHECK 4 and"," NEGGO used in"," case of uneven"," division."," Quotient in X."," Remainder in"," ACCUMULATOR."
   1  to start work  
   1  to see this page again 
   1  to continue    
   1  shown on screen,    press 
   1  n = Any number 
   1  in X from ACCUMULATOR";
   1  for Next  
   1  ZERO : GOING ":
   1  YES?...";
   1  VISICODE INSTRUCTION SET 
   1  USING VISICODE 
   1  TO START 
   1  THE VISICODE MEMORIES "
   1  Subtraction : 255-128=?"
   1  Quotient in X. Remainder in   ACCUMULATOR.  W
   1  PROGRAM READY - PRESS ANY KEY  
   1  PROGRAM READY 
   1  No more space!! Do you want to  see if this works? 
   1  NOT ZERO:NO GO ":
   1  NOT NEG: NO GO ":
   1  NO INSTRUCTION 
   1  NEGATIVE: GOING ":
   1  ILLEGAL JUMP.
   1  EVERY INSTRUCTION & NUMBER 
   1  END OF PROGRAM 
   1  END OF EXAMPLE PROGRAM ";I;" 
   1  Do you want to write another?
   1  Do you want to see them again?
   1  DIFFERENCE=";D;" ":
   1  Compares n with number in ACC. 
   1  CHECKING ACC.":
   1  Another example?  
   1  Add 2 numbers : 3+6=? "
   1  AT GIVEN PLACE 
   1  ACC.= ACCUMULATOR 
   1  1984 MERCURIAN PULP
   1  "," STOP"
   1  ""H"" FOR 
   1  ""G"" TO GO ON  
   1   This program shows why "proper" Assembler needs so many different instructions.   The 15 VISICODEs do not have the flexibility for anything more than simple division.
   1   PROGRAM  
   1   / DIVISION /  CHECK 4 and    NEGGO used in  case of uneven division.
   1    TAKES ONE ""PLACE""
   1     REGISTERS    ";